---
layout: post
title: "Stay Focused and Keep Shipping."
date: 2012-09-01
comments: false
categories:
 - Development
 - Linux
 - Hacking
---

<div class='post'>
<div dir="ltr" style="text-align: left;" trbidi="on">It is a famous quote from an artwork at Mark Zuckerberg's workplace. Well this post has nothing to do with Facebook or Mark Zuckerberg.<br />Rather this article will give you some cool hacks/tips on how you can optimize or build your development setup.<br /><br />The important factors hardware, software, Language and services are mentioned here:<br /><br /><ul style="text-align: left;"><li>Hardware: Choose a hardware that gives you least trouble to setup, if possible always have a secondary screen while using &nbsp;a netbook/laptop. More screen real estate is always handy. Use SSD in place of normal SATA hard drive. You will be amazed by how much faster your system will behave.Don't compromise on RAM, the more the memory the better it is. Another important thing is that&nbsp;<u>Never mix your development machine with your desktop machine</u>. You will have less distraction and much better result.I would suggest building your own machine as it will give your more freedom and will save your precious money that you can invest in other gears. If you are inclined to develop on Linux shy away from nvidia graphics. ATI gives fewer problems.A Noise cancelling headphone and a ergonomic keyboard are also a valuable addition.</li></ul><ul style="text-align: left;"><li>Software: If you want a fairly current and stable development environment I would suggest you use something like Ubuntu or Debian as your development OS. They are pretty mainstream, have the largest repository in planet, anything that will be introduced to Linux will reach your pretty soon. Also the biggest benefit is that you won't have to waste countless hours to configure it. Fedora/Arch/Gentoo is good to learn Linux but they take pretty huge amount of time to configure. And if u are a developer who is past that stage probably you won't like to get in that mess. Some may argue about an OS X as a choice of development platform. I would not&nbsp;hesitate&nbsp;to say that it can be an excellent choice given the hardware and operating system is of world class. Also if you developing apps for iOS or OS X you should stick to Apple Ecosystem. The only thing that can bug you is that you can get every development&nbsp;environment free in Ubuntu/Debian for which you might need to loose some money to buy stuff from App Store.One more important thing is that you should invest sometime to learn some very important utilities on a&nbsp;UNIX&nbsp;platform like basic shell scripting, some command line and get&nbsp;acquainted&nbsp;with &nbsp;Vim/Emacs and tmux or screen. Once you master these things it will give a a huge advantage and you will be able to do more efficient&nbsp;development.</li></ul><ul style="text-align: left;"><li>Language : Its purely &nbsp;a matter of choice but having a scripting language such as perl, ruby or python and a low level language such as C will give u a great deal of advantage.Also if you are a web-based guy do learn ruby,&nbsp;JavaScript, CSS.Plus some server side knowledge will always be useful to you.</li></ul><ul style="text-align: left;"><li>Services: Always try to follow and use mainstream and proven services such that you will have greater acceptance.eg: Github. Also blog about your work and subscribe to a mailing list. It will always keep you informed and current.</li></ul><div>In the end, you should always prefer a test driven, well documented clean code such that it will be easier to integrate or spawn newer functionality in your product.</div></div></div>
